Storage devices using semiconductor elements are broadly classified into two categories: a volatile storage device that loses stored data when power supply stops, and a non-volatile storage device that holds stored data even when power supply stops.
A typical example of a volatile storage device is a DRAM (dynamic random access memory). A DRAM stores data in such a manner that a transistor included in a storage element is selected and electric charge is stored in a capacitor.
Electric charge in the capacitor is lost by reading data from DRAM on the above-described principle; thus, writing operation is necessary every time data is read out. Moreover, the transistor included in the storage element has a leakage current and electric charge flows into or out of the capacitor even when the transistor is not selected, so that the data holding time is short. For that reason, writing operation (refresh operation) is necessary at predetermined intervals, and it is difficult to sufficiently reduce power consumption. Furthermore, since stored data is lost when power supply stops, another storage device using a magnetic material or an optical material is further needed in order to hold data for a long time.
Another example of a volatile storage device is an SRAM (static random access memory). An SRAM holds stored data by using a circuit such as a flip-flop and thus does not need refresh operation, which is an advantage over a DRAM. However, cost per storage capacitance is high because the circuit such as a flip-flop is used. Moreover, as in a DRAM, stored data in an SRAM is lost when power supply stops.
A typical example of a non-volatile storage device is a flash memory. A flash memory includes a floating gate between a gate electrode and a channel formation region in a transistor and stores data by holding electric charge in the floating gate. Therefore, a flash memory has advantages in that the data holding time is extremely long (almost permanent) and refresh operation which is necessary in a volatile storage device is not needed (e.g., see Patent Document 1).
However, a gate insulating layer included in a storage element deteriorates due to tunneling current generated in writing data, so that the storage element stops its function after a predetermined frequency of writing data. In order to reduce adverse effects of this problem, a method in which the frequencies of writing data for storage elements are equalized is employed, for example. However, this method involves a complicated peripheral circuit. Moreover, employing such a method does not solve the fundamental problem of lifetime. In other words, a flash memory is not suitable for applications in which data is frequently rewritten.
In addition, high voltage is necessary for holding electric charge in the floating gate or removing the electric charge. Further, it takes a relatively long time to hold or remove electric charge, and it is not easy to perform writing or erasing data at higher speed.
Further, a so-called multi-valued memory which holds a plurality of states in one storage element involves a complicated circuit in order to secure the accuracy of the writing, which causes reduction in the operation speed.